The present invention relates to network communications and more particularly, to generating data forwarding decisions in a network switch.
In computer networks, a plurality of network stations are interconnected via a communications medium. For example, Ethernet is a commonly used local area network scheme in which multiple stations are connected to a single shared serial data path. These stations often communicate with a switch located between the shared data path and the stations connected to that path. Typically, the switch controls the communication of data packets on the network.
The network switch includes switching logic for receiving and forwarding frames to the appropriate destinations. One arrangement for generating a frame forwarding decision uses a direct addressing scheme, where the network switch includes a fixed address table storing switching logic for the destination addresses.
For example, a frame may be received by the network switch with header information indicating the source address and destination address of the frame. The switching logic accesses the fixed address table using the source address and destination address as lookups to find the appropriate frame forwarding information. The switch then uses this information and sends the frame to the appropriate port(s).
When all of the stations connected to the network are simultaneously operating, packet traffic on the shared serial path can be heavy with little time between packets. Additionally, due to increased network throughput requirements, increasing the data throughput is crucial to the overall operation of the switch.
One drawback with typical prior art systems employing address tables is that the decision making logic processes data frames one frame at a time. That is, when multiple frames are received by the switch, the decision making logic processes the header information from the first frame and generates the frame forwarding information. The decision making logic then starts the process over again for the second frame. Such a processing arrangement often results in low data throughput. Additionally, prior art arrangements employing address tables typically include a single decision making device that performs all of the processing tasks necessary to generate a frame forwarding decision. A drawback with utilizing a single decision making device is the difficulty in implementing changes in any one part of the decision making process without affecting other parts of the decision making process. Another drawback with typical prior art systems is that the decision making logic is included within a logic device that performs other functions on the switch. Such an arrangement makes changes to the decision making logic difficult to implement without affecting other logic functions on the switch.
There exists a need for a switching device that includes a decision making engine designed to support networks requiring a high data throughput.
There is also a need for a switching device that employs a modular decision making engine that facilitates changes to the decision making logic.
These and other needs are met by the present invention, where a multiport switch includes a decision making engine used to make frame forwarding decisions. The decision making engine is designed in pipelined, modular fashion so that multiple frames may be processed simultaneously.
According to one aspect of the invention, a multiport switch is configured to control the communication of data frames between stations. The switch includes a programmable address table for storing address information and data forwarding information. The switch also includes a decision making engine configured to search the programmable address table and generate data forwarding information for a data frame. The decision making engine comprises a plurality of logic engines where each of the logic engines is configured to process a data frame simultaneously with each other logic engine.
Another aspect of the present invention provides a method for generating data forwarding information in a multiport switch that controls communication of data frames between stations. The method includes receiving a data frame and processing the data frame in a pipelined manner through a decision making engine. The decision making engine comprises a plurality of logic engines with each of the logic engines configured to process a data frame simultaneously with each other logic engine. The method also includes generating the data forwarding information.